package com.example.luozizhao.eprxdemo.net.response.login;

import com.example.luozizhao.eprxdemo.net.bean.ConactsBean;
import com.example.luozizhao.eprxdemo.net.response.BaseNetBean;
import com.google.gson.JsonObject;

import java.io.Serializable;
import java.util.List;
import java.util.Set;

/**
 * @author qiwenming
 * @date 2015-10-29 下午4:48:50 
 * @ClassName GetNounceRespBean 
 * @Package com.cshtong.app.net.response 
 * @Description: 生成登录随机码 响应类
 */
public class UserLoginRespBean extends BaseNetBean {

	private UserLoginData data;
	
	public UserLoginData getData() {
		return data;
	}

	public void setData(UserLoginData data) {
		this.data = data;
	}

	@Override
	public String toString() {
		return "UserLoginRespBean{" +
				"data=" + data +
				'}';
	}

	/**
	 * @author qiwenming
	 * @date 2015-10-30 上午11:03:51 
	 * @ClassName UserLoginData 
	 * @Package com.cshtong.app.net.response 
	 * @Description:请求的data 类
	 */
	public class UserLoginData implements Serializable {
		 /**
		  * 用户有效打卡区域
		  */
//		 private AreaTgBean area_tg;
		 /**
		  * 最近两天的排班信息
		  */
		 private List<ScheduItemBean> scheduleList;
		 /**
		  * 权限编码集
		  */
		 private String privilegeCodes;
		 /**
		  * 基本数据
		  */
		 private Basic basic;
		/**
		 * 人脸对象的数据
		 */
		private FaceInfo faceInfo;
		 /**
		  * 认证菜单
		  */
		 private AuthMenu authMenu;
		 /**
		  * 网格清单
		  */
		 private Set<String> gridList;
		 /**
		  * 授权
		  */
		 private JsonObject authPage;
		 
		 private List<StationInfo> stationList;
		 
		 private List<ConactsBean> friendList;

		public List<StationInfo> getStationList() {
			return stationList;
		}

		public void setStationList(List<StationInfo> stationList) {
			this.stationList = stationList;
		}

		public List<ConactsBean> getFriendList() {
			return friendList;
		}

		public void setFriendList(List<ConactsBean> friendList) {
			this.friendList = friendList;
		}

		public List<ScheduItemBean> getScheduleList() {
			return scheduleList;
		}
		public void setScheduleList(List<ScheduItemBean> scheduleList) {
			this.scheduleList = scheduleList;
		}
		public Basic getBasic() {
			return basic;
		}
		public void setBasic(Basic basic) {
			this.basic = basic;
		}

		public FaceInfo getFaceInfo() {
			return faceInfo;
		}
		public void setFaceInfo(FaceInfo faceInfo) {
			this.faceInfo = faceInfo;
		}
		public AuthMenu getAuthMenu() {
			return authMenu;
		}
		public void setAuthMenu(AuthMenu authMenu) {
			this.authMenu = authMenu;
		}
		public Set<String> getGridList() {
			return gridList;
		}
		public void setGridList(Set<String> gridList) {
			this.gridList = gridList;
		}
		public JsonObject getAuthPage() {
			return authPage;
		}
		public void setAuthPage(JsonObject authPage) {
			this.authPage = authPage;
		}
/*        public List<StationInfo> getStationList() {
            return stationList;
        }
        public void setStationList(List<StationInfo> stationList) {
            this.stationList = stationList;
        }
        public List<ConactsBean> getFriendList() {
            return friendList;
        }
        public void setFriendList(List<ConactsBean> friendList) {
            this.friendList = friendList;
        }*/

		@Override
		public String toString() {
			return "UserLoginData{" +
					"scheduleList=" + scheduleList +
					", basic=" + basic +
					", faceInfo=" + faceInfo +
					", authMenu=" + authMenu +
					", gridList=" + gridList +
					", authPage=" + authPage +
					'}';
		}
	}
	 
	 /**
	 * 菜单权限
	 *
	 */
	public class AuthMenu implements Serializable {
		 //TODO
		private App app; 
		
		public class App{
			private String code;
			private String name;
			private String url;
			private List<Child> children;
			
			public String getCode() {
				return code;
			}

			public void setCode(String code) {
				this.code = code;
			}

			public String getName() {
				return name;
			}

			public void setName(String name) {
				this.name = name;
			}

			public String getUrl() {
				return url;
			}

			public void setUrl(String url) {
				this.url = url;
			}

			public List<Child> getChildren() {
				return children;
			}

			public void setChildren(List<Child> children) {
				this.children = children;
			}


			public class Child{
				private String code; //菜单码
				private String name; //菜单名字
				
				public String getCode() {
					return code;
				}
				public void setCode(String code) {
					this.code = code;
				}
				public String getName() {
					return name;
				}
				public void setName(String name) {
					this.name = name;
				}
			}
		}

		public App getApp() {
			return app;
		}

		public void setApp(App app) {
			this.app = app;
		}

		 @Override
		 public String toString() {
			 return "AuthMenu{" +
					 "app=" + app +
					 '}';
		 }
	 }
	 
	 public class Basic implements Serializable {
		 /**
		  * 用户id
		  */
		 private Integer uid;
		 /**
		  * 组织名称
		  */
		 private String orgName;
		 /**
		  * 用户名
		  */
		 private String uname;
		 /**
		  * 手机号码
		  */
		 private String mobile;
		 /**
		  * 身份证号
		  */
		 private String idNumber;
		 /**
		  * 类型
		  */
		 private Integer type;
		 /**
		  * 电话号码
		  */
		 private String emegencyTel;
		 /**
		  * 组织id
		  */
		 private Integer orgId;
		 /**
		  * 环信密码
		  * @return
		  */
		 private String hxPassword;
		 /**
		  * 头像
		  */
		 private String avatar;
		 /**
		  * 职位
		  */
		 private String jobName;
		 /**
		  * 人员类型
		  */
		 private int roleType;
		 
		public String getAvatar() {
			return avatar;
		}
		public void setAvatar(String avatar) {
			this.avatar = avatar;
		}
		public String getHxPassword() {
			return hxPassword;
		}
		public void setHxPassword(String hxPassword) {
			this.hxPassword = hxPassword;
		}
		public Integer getUid() {
			return uid;
		}
		public void setUid(Integer uid) {
			this.uid = uid;
		}
		public String getOrgName() {
			return orgName;
		}
		public void setOrgName(String orgzName) {
			this.orgName = orgzName;
		}
		public String getUname() {
			return uname;
		}
		public void setUname(String uname) {
			this.uname = uname;
		}
		public String getMobile() {
			return mobile;
		}
		public void setMobile(String mobile) {
			this.mobile = mobile;
		}
		public String getIdNumber() {
			return idNumber;
		}
		public void setIdNumber(String idNumber) {
			this.idNumber = idNumber;
		}
		public Integer getType() {
			return type;
		}
		public void setType(Integer type) {
			this.type = type;
		}
		public String getEmegencyTel() {
			return emegencyTel;
		}
		public void setEmegencyTel(String emegencyTel) {
			this.emegencyTel = emegencyTel;
		}
		public Integer getOrgId() {
			return orgId;
		}
		public void setOrgId(Integer orgId) {
			this.orgId = orgId;
		}
		public String getJobName() {
			return jobName;
		}
		public void setJobName(String jobName) {
			this.jobName = jobName;
		}
		public int getRoleType() {
			return roleType;
		}
		public void setRoleType(int roleType) {
			this.roleType = roleType;
		}

		 @Override
		 public String toString() {
			 return "Basic{" +
					 "uid=" + uid +
					 ", orgName='" + orgName + '\'' +
					 ", uname='" + uname + '\'' +
					 ", mobile='" + mobile + '\'' +
					 ", idNumber='" + idNumber + '\'' +
					 ", type=" + type +
					 ", emegencyTel='" + emegencyTel + '\'' +
					 ", orgId=" + orgId +
					 ", hxPassword='" + hxPassword + '\'' +
					 ", avatar='" + avatar + '\'' +
					 ", jobName='" + jobName + '\'' +
					 ", roleType=" + roleType +
					 '}';
		 }
	 }
	 
//	 /**
//	  * @author qiwenming
//	  * @date 2015-10-30 上午11:12:20 
//	  * @ClassName AreaTgBean 
//	  * @Package com.cshtong.app.net.response 
//	  * @Description:
//	  */
///*	 private class AreaTgBean implements Serializable{
//		 *//**
//		  * 网格id
//		  *//*
//		 private String gridId;
//		 *//**
//		  * 标记点坐标，用于地图上显示图标和信息用，对于网格，巡区则使用中心点，对于巡段使用起始点。
//		  *//*
//		 private String coordinateMark;
//		 *//**
//		  * 网格坐标列表，通过逗号分隔的坐标点
//		  *//*
//		 private String coordinates;
//		 
//	 }*/
	 
	 /**
	  * @author qiwenming
	  * @date 2015-10-30 上午11:14:25 
	  * @ClassName ScheduItemBean 
	  * @Package com.cshtong.app.net.response 
	  * @Description:最近两天的排班信息
	  */
	 public class ScheduItemBean implements Serializable {
		 /**
		  * 排班id(调班的时候需要使用)
		  */
		 private int scheduleId;
		 
		 /** 记录id：调班使用此id，V3.2修正 TODO */
		 private Long recordId;
		 
		 /**
		  * 值班时间(这里需要提供那一天 什么班次 什么时间段 eg:2015-10-19 晚班 16:00-24:00)
		  */
		 private long scheduleDate;
		 /**
		  * 巡逻内容或者巡逻方式
		  */
		 private String patrolType;
		 /**
		  * 负责人
		  */
		 private int leader;
		 /**
		  * 队员
		  */
		 private String members;
		 /**
		  * 备注信息
		  */
		 private String note;
		
		 /**
		  * 巡逻位置
		  */
		 private int gridId;
		 private int orgId;
		 private String organization;
		 /**
		  * 开始值班时间
		  */
		 private String startTime;
		 /**
		  * 结束值班时间
		  */
		 private String endTime;
		 private String fixedHistory;
		public int getScheduleId() {
			return scheduleId;
		}
		public void setScheduleId(int scheduleId) {
			this.scheduleId = scheduleId;
		}
		public long getScheduleDate() {
			return scheduleDate;
		}
		public void setScheduleDate(long scheduleDate) {
			this.scheduleDate = scheduleDate;
		}
		public String getPatrolType() {
			return patrolType;
		}
		public void setPatrolType(String patrolType) {
			this.patrolType = patrolType;
		}
		public int getLeader() {
			return leader;
		}
		public void setLeader(int leader) {
			this.leader = leader;
		}
		public String getMembers() {
			return members;
		}
		public void setMembers(String members) {
			this.members = members;
		}
		public String getNote() {
			return note;
		}
		public void setNote(String note) {
			this.note = note;
		}
		public int getGridId() {
			return gridId;
		}
		public void setGridId(int gridId) {
			this.gridId = gridId;
		}
		public int getOrgId() {
			return orgId;
		}
		public void setOrgId(int orgId) {
			this.orgId = orgId;
		}
		public String getOrganization() {
			return organization;
		}
		public void setOrganization(String organization) {
			this.organization = organization;
		}
		public String getStartTime() {
			return startTime;
		}
		public void setStartTime(String startTime) {
			this.startTime = startTime;
		}
		public String getEndTime() {
			return endTime;
		}
		public void setEndTime(String endTime) {
			this.endTime = endTime;
		}
		public String getFixedHistory() {
			return fixedHistory;
		}
		public void setFixedHistory(String fixedHistory) {
			this.fixedHistory = fixedHistory;
		}
		public Long getRecordId() {
			return recordId;
		}
		public void setRecordId(Long recordId) {
			this.recordId = recordId;
		}

		 @Override
		 public String toString() {
			 return "ScheduItemBean{" +
					 "scheduleId=" + scheduleId +
					 ", recordId=" + recordId +
					 ", scheduleDate=" + scheduleDate +
					 ", patrolType='" + patrolType + '\'' +
					 ", leader=" + leader +
					 ", members='" + members + '\'' +
					 ", note='" + note + '\'' +
					 ", gridId=" + gridId +
					 ", orgId=" + orgId +
					 ", organization='" + organization + '\'' +
					 ", startTime='" + startTime + '\'' +
					 ", endTime='" + endTime + '\'' +
					 ", fixedHistory='" + fixedHistory + '\'' +
					 '}';
		 }
	 }

	public class FaceInfo implements Serializable {
		/**
		 * 人脸自增长id
		 */
		private Integer id;
		/**
		 * 用户id
		 */
		private Integer uid;
		/**
		 * 人脸id
		 */
		private String faceId;

		/**
		 * 人脸id
		 */
		private String faceUrl;

		/**
		 *  义警企业id
		 */
		private String companyId;

		public String getCompanyId() {
			return companyId;
		}

		public void setCompanyId(String companyId) {
			this.companyId = companyId;
		}

		public Integer getId() {
			return id;
		}

		public void setId(Integer id) {
			this.id = id;
		}

		public Integer getUid() {
			return uid;
		}

		public void setUid(Integer uid) {
			this.uid = uid;
		}

		public String getFaceId() {
			return faceId;
		}

		public void setFaceId(String faceId) {
			this.faceId = faceId;
		}

		public String getFaceUrl() {
			return faceUrl;
		}

		public void setFaceUrl(String faceUrl) {
			this.faceUrl = faceUrl;
		}


	}
	 
}
